/*
 * @Descripttion: 
 * @Author: ziwei
 * @Date: 2022-07-04 13:50:25
 * @LastEditors: ziwei
 * @LastEditTime: 2022-07-04 13:59:09
 */
export {}
//抽象类
abstract class Animals {
    name:string
    abstract speak():void 
    constructor(parameters) {
        
    }
}
//实现抽象方法
//多态：同一个方法不同的子类有不同的实现
class Cat extends Animals{
    speak(): void {
       console.log('喵喵喵');
    }
    
}
class Dog extends Animals{
    speak(): void {
       console.log('汪汪汪');
    }
}

/**
 * 重写（override）子类重写继承自父类的方法
 * 重栽（overload）函数的重栽
 */
function double(val:string)
function double(val:number)
function double(val:any){
    if(typeof val==='number'){
        return val*2
    }else if(typeof val ==='string'){
        return val+val
    }
}
double(2)
double('2')
// double(true)

//继承和多态